Skip to content
This repository has been archived by the owner on Sep 1, 2020. It is now read-only.

Latest commit

 

History

History
56 lines (50 loc) · 1.95 KB

16.20.31 - 1.8.6.md

File metadata and controls

56 lines (50 loc) · 1.95 KB

1.8.6

1.8.6版本是一个重要的BUG修复版本,主要修复了PHP7环境下HttpServer、TCPClient、HttpClient、Redis等客户端存在的内存泄漏、崩溃问题。另外1.8.6版本对MySQL进行了彻底重构,提供了全新的面向对象风格API,彻底移除了对PHP的mysqli和mysqlnd的依赖。

建议所有swoole开发者升级至此版本。

主要更新内容

  • 修复Swoole\Server->set方法在关联索引数组的Value为NULL时错误地更改了zval类型
  • 更新Swoole\Server->task方法第三个参数可以直接传入回调函数
  • 修复Swoole\WebSocket\Server收到恶意请求时崩溃的问题,提升稳定性
  • 重构Swoole\MySQL客户端,移除对mysqlimysqlnd的依赖,提供了面向对象风格的API
  • 调整Swoole\Http\Client为内置,不需要额外的编译参数开启
  • 调整Swoole\ClientSwoole\Http\Client内存回收的时机,在连接发送关闭时回收内存资源
  • 增加swoole_async_dns_lookup查询结果缓存
  • 优化Swoole\WebSocket\Server性能,减少两次内存复制
  • 移除Swoole\Http\Server->setGlobal方法
  • 修复在Task进程中执行close时onClose回调函数未在Worker进程中执行的问题
  • 修复Swoole\Table删除KEY后未清空数据的问题
  • 增加SSL、TLS证书链的支持
  • 移除gcc aio
  • 修复异步文件读写函数的相关问题

新版异步MySQL客户端

$db = new swoole_mysql;
$server = array(
    'host' => '192.168.56.102',
    'user' => 'test',
    'password' => 'test',
    'database' => 'test',
);

$db->connect($server, function ($db, $r) {
	if ($r === false) {
		var_dump($db->connect_errno, $db->connect_error);
		die;
	}
    $sql = 'show tables';
	$db->query($sql, function(swoole_mysql $db, $r) {
		global $s;
		if ($r === false)
		{
			var_dump($db->error, $db->errno);
		}
		elseif ($r === true )
		{
			var_dump($db->affected_rows, $db->insert_id);
		}
		var_dump($r);
		$db->close();
	});
});